package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;

import java.util.HashMap;
import java.util.Set;

public interface RoleDao {
    /**
     * 根据用户的id查询此用户包含的所有角色信息(其中角色只是基本信息)
     * @param userId
     * @return
     */
    Set<Role> findByUserId(Integer userId);

    /**
     * 条件查询 所有角色
     * @param queryString
     * @return
     */
    Page<Role> findAll(String queryString);

    /**
     * insert  新增一个角色
     * @param role
     */
    void saveOneBasic(Role role);

    /**
     * 根据角色主键 和 权限主键 保存到中间表
     * @param map
     */
    void saveMiddle(HashMap<String, Integer> map);

    Role selectBasicById(int id);

    int[] selectMiddleByRoleId(int id);

    void updateBasic(Role role);

    /**
     * 根据角色的id删除其关联的所有权限
     * @param id
     */
    void deleteMiddleIds(Integer id);

    /**
     * 根据角色id 查角色用户中间表
     * @param id
     * @return
     */
    Long selectUserByRoleId(Integer id);

    /**
     * 根据角色id删除 角色
     * @param id 角色的id
     */
    void deleteRoleById(int id);
}
